

// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   by.java

package com.zelix;

import java.io.*;
import java.util.*;

// Referenced classes of package com.zelix:
//            rb, gc, oc, fh, 
//            zo, lt, xx, ef, 
//            yx, lx, jy, oy, 
//            gs, ly

public class by
{

    static final String a = System.getProperty(z(z("S6KN\003L:UJ_^+JY")), "\n");
    private static String b = "&";
    private jy c;
    private String d;
    private String e;
    public static int f;
    private static String z[];

    public by(File file)
        throws rb
    {
        int i = f;
        super();
        c = new jy();
        if(file == null)
            throw new IllegalArgumentException(z[11]);
        d = file.getAbsolutePath();
        e = file.getName();
        BufferedReader bufferedreader = null;
        try
        {
            bufferedreader = oc.a(file);
            String s;
            while((s = bufferedreader.readLine()) != null) 
            {
                if(s.equals(""))
                    continue;
                if(s.equals(b))
                {
                    if(i == 0)
                        continue;
                    int j = gs.b;
                    gs.b = ++j;
                }
                c(s);
            }
            a(z[10]);
            a(z[9]);
            a(z[4]);
        }
        catch(IOException ioexception)
        {
            throw new rb(z[13] + d + z[0] + ioexception);
        }
        finally
        {
            if(bufferedreader != null)
                try
                {
                    bufferedreader.close();
                }
                catch(IOException ioexception1)
                {
                    throw new rb(z[12] + d + z[0] + ioexception1);
                }
        }
    }

    private void a(String s)
        throws rb
    {
        if(!c.containsKey(s))
            throw new rb(z[1] + d + z[7] + s + z[8]);
        else
            return;
    }

    public String a()
    {
        return d;
    }

    String b(String s)
    {
        return (String)c.get(s);
    }

    public String b()
    {
        return e;
    }

    public long c()
        throws gc
    {
        String s = (String)c.get(z[4]);
        if(s != null)
            try
            {
                return Long.parseLong(s);
            }
            catch(NumberFormatException numberformatexception)
            {
                throw new gc(z[1] + d + z[6] + z[4] + z[2] + s + z[0] + numberformatexception.toString());
            }
        else
            throw new gc(z[1] + d + z[5] + z[4] + z[3]);
    }

    public String d()
        throws rb
    {
label0:
        {
            String s1;
label1:
            {
                String s = (String)c.get(z[9]);
                if(s == null)
                    break label0;
                int i = s.lastIndexOf("/");
                if(i > -1)
                {
                    if(i < s.length())
                    {
                        s1 = s.substring(i + 1);
                        if(f == 0)
                            break label1;
                    }
                    throw new rb(z[1] + d + z[6] + z[9] + z[2] + s + "'");
                }
                s1 = s;
            }
            int j = s1.indexOf("?");
            if(j > -1)
                s1 = s1.substring(0, j);
            return s1;
        }
        throw new rb(z[1] + d + z[5] + z[9] + z[3]);
    }

    public void a(String s, HashMap hashmap)
    {
        String s1;
        Enumeration enumeration;
        int k;
        k = f;
        s1 = z[21] + s + "'";
        enumeration = c.d();
        if(k == 0) goto _L2; else goto _L1
_L1:
        String s2;
        String s3;
        StringTokenizer stringtokenizer;
        int i;
        s2 = (String)enumeration.nextElement();
        if(!s2.startsWith(z[17]) || !oy.a(s2.substring(z[17].length())))
            break MISSING_BLOCK_LABEL_290;
        s3 = b(s2);
        stringtokenizer = new StringTokenizer(s3, ",", true);
        i = 0;
        if(k == 0) goto _L4; else goto _L3
_L3:
        String s6 = stringtokenizer.nextToken().trim();
        if(s6.equals(","))
        {
            i++;
            if(k == 0)
                continue; /* Loop/switch isn't completed */
        }
        switch(i)
        {
        case 0: // '\0'
        case 1: // '\001'
            break;

        case 2: // '\002'
            String s7 = lt.b(s6);
            mt mt = fh.a(s7);
            if(mt == null)
                break;
            hashmap.put(mt, s2 + s1);
            if(k == 0)
                break;
            // fall through

        default:
            lx.b(false, "'" + s2 + z[22] + s3 + z[0] + i);
            break;
        }
_L4:
        if(stringtokenizer.hasMoreTokens()) goto _L3; else goto _L5
_L5:
        if(k == 0)
            continue; /* Loop/switch isn't completed */
        if(s2.equals(z[18]))
            continue; /* Loop/switch isn't completed */
        String s4 = b(s2);
        stringtokenizer = new StringTokenizer(s4, z[23], true);
        if(k == 0) goto _L7; else goto _L6
_L6:
        String s5 = stringtokenizer.nextToken();
        if(s5.length() >= zo.n && s5.indexOf(".") > -1 && s5.indexOf("/") == -1)
        {
            int j = s5.indexOf(".");
            if(j > 0 && j < s5.length() - 1 && ef.a(s5, "."))
            {
                String s8 = lt.b(s5);
                mt mt1 = fh.a(s8);
                if(mt1 != null)
                    hashmap.put(mt1, s2 + s1);
            }
        }
_L7:
        if(stringtokenizer.hasMoreTokens()) goto _L6; else goto _L2
_L2:
        if(enumeration.hasMoreElements()) goto _L1; else goto _L8
_L8:
    }

    public void a(long l)
    {
        String s = (String)c.put(z[4], String.valueOf(l));
    }

    private String c(String s)
        throws rb
    {
        int i;
        String s1;
label0:
        {
            int j = f;
            i = s.indexOf(":");
            if(i <= 0 || i == s.length() - 1)
                throw new rb(z[14] + s + "'");
            s1 = s.substring(0, i).trim();
            if(s1.equalsIgnoreCase(z[10]))
            {
                s1 = z[10];
                if(j == 0)
                    break label0;
            }
            if(s1.equalsIgnoreCase(z[9]))
            {
                s1 = z[9];
                if(j == 0)
                    break label0;
            }
            if(s1.equalsIgnoreCase(z[4]))
                s1 = z[4];
        }
        if(c.containsKey(s1))
        {
            throw new rb(z[16] + s1 + z[15] + s + "'");
        } else
        {
            String s2 = s.substring(i + 1).trim();
            c.put(s1, s2);
            return s1;
        }
    }

    public void a(File file, ly ly, ly ly1, yx yx1)
        throws rb
    {
        PrintWriter printwriter;
        int i;
        i = f;
        if(file == null)
            throw new IllegalArgumentException(z[19]);
        printwriter = null;
        Enumeration enumeration;
        printwriter = new PrintWriter(new BufferedWriter(new FileWriter(file)));
        enumeration = c.d();
        if(i == 0) goto _L2; else goto _L1
_L1:
        String s = (String)enumeration.nextElement();
        String s1 = b(s);
        if(s.equals(z[18]))
        {
            printwriter.println(s + ":" + " " + yx.b(s1, ly));
            if(i == 0)
                continue; /* Loop/switch isn't completed */
        }
        if(s.startsWith(z[17]) && oy.a(s.substring(z[17].length())))
        {
            printwriter.println(xx.b(s, s1, ly, ly1));
            if(i == 0)
                continue; /* Loop/switch isn't completed */
        }
        printwriter.println(ef.a(s, s1, ly, ly1));
_L2:
        if(enumeration.hasMoreElements()) goto _L1; else goto _L3
_L3:
        printwriter.println();
        break MISSING_BLOCK_LABEL_273;
        IOException ioexception;
        ioexception;
        throw new rb(z[20] + file.getAbsolutePath() + z[0] + ioexception);
        break MISSING_BLOCK_LABEL_301;
        local;
        if(printwriter != null)
            printwriter.close();
        JVM INSTR ret 7;
        if(gs.b != 0)
            f = ++i;
        return;
    }

    private static char[] z(String str) {
        char ac[] = str.toCharArray();
        int clen = ac.length;
        if (clen >= 2)
            return ac;
        ac[0] ^=0x2d;
        return ac;
    }

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0:
                    key =0x3f;
                    break;
                case 1:
                    key = 95;
                    break;
                case 2:
                    key = 37;
                    break;
                case 3:
                    key = 43;
                    break;
                default:
                    key =45;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static 
    {
        String as[] = new String[24];
        as[0] = z(z("\030\177\037\013"));
        as[1] = z(z("u\036a\013KV3@\013\n"));
        as[2] = z(z("\037)DGXZ\177JM\r\030"));
        as[3] = z(z("\037>Q__V=P_H"));
        as[4] = z(z("r\026aGHKroJ_\022\fLQH"));
        as[5] = z(z("\030\177MJ^\0371J\013"));
        as[6] = z(z("\030\177MJ^\037>K\013DQ)DGD[\177"));
        as[7] = z(z("\030\177ADHL\177KDY\037<JEY^6K\013L\037"));
        as[8] = z(z("\037>Q__V=P_H\021"));
        as[9] = z(z("r\026aGHKroJ_\022\nwg"));
        as[10] = z(z("r\026aGHKrkJ@Z"));
        as[11] = z(z("q*IG\ru\036a\013KV3@"));
        as[12] = z(z("v\020`SNZ/QBBQ\177RCDS:\005HAP,LEJ\037\025do\r\005\177\002"));
        as[13] = z(z("v\020`SNZ/QBBQ\177RCDS:\005YH^;LEJ\037\025do\r\005\177\002"));
        as[14] = z(z("v1SJAV;\005al{\177D_YM6G^YZ\177\002"));
        as[15] = z(z("\030\177MNL[:WX\rV1\005_EZ\177oji\005\177\002"));
        as[16] = z(z("k(J\013\n"));
        as[17] = z(z("r\026aGHKr"));
        as[18] = z(z("r\026aGHKrlHBQ"));
        as[19] = z(z("q*IG\rP*Q[XK\177oji\0379LGH"));
        as[20] = z(z("v\020`SNZ/QBBQ\177RCDS:\005\\_V+LEJ\037\025do\r\005\177\002"));
        as[21] = z(z("\0376K\013\n"));
        as[22] = z(z("\030\177MJ^\0376K]LS6A\013[^3PN\r\030"));
        as[23] = z(z("\037s"));
        z = as;
    }
}